লারাভেল ফাইল স্টোরেজ (Laravel File Storage)

Web Development - লারাভেল (Laravel) - লারাভেল এডভান্স (Laravel Advance) |
2
2

লারাভেল (Laravel) ফ্রেমওয়ার্কে ফাইল স্টোরেজ ব্যবস্থা অত্যন্ত শক্তিশালী এবং নমনীয়। এটি ডেভেলপারদের ফাইল আপলোড, সংরক্ষণ এবং ব্যবস্থাপনা খুব সহজ করে তোলে। লারাভেল ফাইল স্টোরেজ সিস্টেমের মাধ্যমে আপনি স্থানীয় ড্রাইভ (Local disk), ক্লাউড স্টোরেজ (যেমন Amazon S3, Google Cloud, etc.) বা FTP-তে ফাইল সংরক্ষণ করতে পারেন।

লারাভেল ফাইল স্টোরেজের মৌলিক ধারণা

লারাভেল ফাইল স্টোরেজ সিস্টেম Storage ফ্যাসাড (Facade) ব্যবহার করে পরিচালিত হয়, যা ডিফল্টভাবে লারাভেলের কনফিগারেশন ফাইলে সংরক্ষিত থাকে। Storage ফ্যাসাডের মাধ্যমে বিভিন্ন ধরনের ফাইল অপারেশন যেমন ফাইল আপলোড, ডাউনলোড, মুছে ফেলা এবং স্টোরেজের মধ্যে ফাইলের অবস্থান পরিবর্তন করা যায়।

ফাইল আপলোড করা

লারাভেলে ফাইল আপলোডের প্রক্রিয়া সহজ এবং সরল। সাধারণত ফর্মের মাধ্যমে ফাইল আপলোড করা হয় এবং তারপর Storage ফ্যাসাড ব্যবহার করে ফাইলটি স্টোর করা হয়।

use Illuminate\Support\Facades\Storage;

public function store(Request $request)
{
    // ফাইল আপলোড করা
    $path = $request->file('file')->store('files');
    
    // ফাইলের পাথ রিটার্ন করা
    return $path;
}

এই উদাহরণে store() মেথড ফাইলটি files ডিরেক্টরিতে সংরক্ষণ করবে।

ফাইলের পাথ দেখতে

আপনি যদি একটি আপলোড করা ফাইলের পূর্ণ পাথ দেখতে চান, তবে Storage::path() মেথড ব্যবহার করতে পারেন। উদাহরণ:

$path = Storage::path('files/example.jpg');

এটি ফাইলের পূর্ণ পাথ প্রদান করবে।

ফাইল ডাউনলোড করা

লারাভেলে ফাইল ডাউনলোড করতে download() মেথড ব্যবহার করা হয়। এটি ফাইলটি ক্লায়েন্ট ব্রাউজারে ডাউনলোড করার জন্য সরবরাহ করে।

public function downloadFile($filename)
{
    return Storage::download('files/' . $filename);
}

ফাইলের উপস্থিতি চেক করা

আপনি যদি জানতে চান যে কোনও ফাইল নির্দিষ্ট পাথের মধ্যে রয়েছে কি না, তবে exists() মেথড ব্যবহার করতে পারেন:

if (Storage::exists('files/example.jpg')) {
    // ফাইল পাওয়া গেছে
}

ডিফল্ট ড্রাইভ কনফিগারেশন

লারাভেলের config/filesystems.php কনফিগারেশন ফাইলে আপনি ডিফল্ট স্টোরেজ ড্রাইভ নির্বাচন করতে পারবেন। এখানে বিভিন্ন ধরনের ড্রাইভ কনফিগার করা থাকে যেমন local, s3, ftp ইত্যাদি।

'default' => env('FILESYSTEM_DISK', 'local'),

এখানে local ড্রাইভ ডিফল্ট হিসেবে কনফিগার করা আছে, কিন্তু আপনি চাইলে অন্য ড্রাইভও ব্যবহার করতে পারেন।

ক্লাউড স্টোরেজ ব্যবহারে

লারাভেল ক্লাউড স্টোরেজে ফাইল আপলোড করতে আপনাকে প্রথমে config/filesystems.php ফাইলে ক্লাউড স্টোরেজের কনফিগারেশন সেট করতে হবে। উদাহরণস্বরূপ, যদি আপনি Amazon S3 ব্যবহার করতে চান:

's3' => [
    'driver' => 's3',
    'key' => env('AWS_ACCESS_KEY_ID'),
    'secret' => env('AWS_SECRET_ACCESS_KEY'),
    'region' => env('AWS_DEFAULT_REGION'),
    'bucket' => env('AWS_BUCKET'),
],

এবার, ফাইল আপলোড করতে Storage::disk('s3')->put() মেথড ব্যবহার করতে হবে:

Storage::disk('s3')->put('files/example.jpg', file_get_contents($request->file('file')));

সার্ভারের বাইরে ফাইল সংরক্ষণ

লারাভেল আপনাকে ক্লাউড স্টোরেজ যেমন Amazon S3, Google Cloud, এবং অন্যান্য সার্ভিসে ফাইল সংরক্ষণ করার সুবিধা দেয়। এই সুবিধা ব্যবহার করে আপনি সহজেই বড় পরিমাণের ফাইল স্টোর করতে পারেন যা আপনার লোকাল সার্ভারে সম্ভব নয়।


লারাভেল ফাইল স্টোরেজ সিস্টেমের মাধ্যমে ফাইল আপলোড এবং ব্যবস্থাপনা অনেক সহজ এবং কার্যকরী হয়। এটি ডেভেলপারদের বিভিন্ন স্টোরেজ মাধ্যম যেমন লোকাল ড্রাইভ, FTP, ক্লাউড স্টোরেজ ব্যবহার করে ফাইল পরিচালনা করতে সাহায্য করে।

Content added By
Promotion